Generic broadband application and plug-ins

ABSTRACT

A network device may include one or more devices to select, upon receiving a broadband card at the network device, a first vendor-specific plug-in provided in the network device, to detect the broadband card; one or more devices to determine that the first vendor-specific plug-in fails to detect the broadband card; and one or more devices to select, when the first vendor-specific plug-in fails to detect the broadband card, a second vendor-specific plug-in provided in the network device, to detect the broadband card, the first vendor-specific plug-in being associated with a first vendor, and the second vendor-specific plug-in being associated with a different, second vendor.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.12/326,251 filed Dec. 2, 2008, the entirety of which is herebyincorporated by reference herein.

BACKGROUND INFORMATION

Today's mobile devices may use different types of components tocommunicate with other devices via the Internet. For example, a laptopmay access a video clip from an Internet website via a broadband cardthat is plugged into the laptop.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an exemplary network in which concepts described herein maybe implemented;

FIG. 2 is a block diagram of exemplary components of a host device ofFIG. 1;

FIG. 3 is a block diagram of exemplary functional components of the hostdevice of FIG. 1;

FIG. 4 is a block diagram of exemplary functional components ofbroadband card-related components of FIG. 3;

FIG. 5 is a flow diagram of an exemplary process for managing andcontrolling a broadband card;

FIG. 6 illustrates an exemplary window of a graphical user interface(GUI) of a generic broadband card application of FIG. 4.

FIG. 7 illustrates another exemplary window of the GUI;

FIG. 8 illustrates yet another exemplary window of the GUI; and

FIG. 9 illustrates still another exemplary window of the GUI.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following detailed description refers to the accompanying drawings.The same reference numbers in different drawings may identify the sameor similar elements.

As described below, an application hosted on a device (e.g., a laptop, acomputer, a notepad, a cell phone, etc.) may interact with one or morebroadband cards that are plugged into or otherwise connected to thedevice. The application may perform tests on the broadband card,configure the broadband card, and use the broadband card to establish acommunication link with another device over a network.

In one implementation, the application may provide increased convenienceto broadband card users, and may save application writer/distributorsproduction/distribution cost. Because the application can handledifferent broadband card models/types, the user may avoid installing avendor specific application to use a new broadband card model/type. Theapplication writer/distributor may avoid providing the upgradedapplication to users who wish to use the new broadband card model/newtype of broadband card. Because new broadband card types/models areoften released into the market, the increased convenience and costsavings can be significant factors in purchasing/selling a particularapplication for managing and controlling broadband cards.

FIG. 1 is a diagram of exemplary network 100 in which concepts describedherein may be implemented. As shown, network 100 may include a network102, a wireless access point 104, and a host device 106. Depending onthe implementation, network 100 may include additional, fewer, ordifferent components than those illustrated in FIG. 1.

Network 102 may include the Internet, an intranet, a local area network(LAN), a wireless LAN (WLAN), a wide area network (WAN), a metropolitanarea network (MAN), a cellular network, a public switched telephonenetwork (PSTN), any other network, or a combination of networks.

Wireless access point 104 may include a device that operates as agateway into network 102 for a device that establishes a wirelesscommunication link with wireless access point (e.g., a cell tower, abase station, etc.). Host device 106 may communicate with another devicein network 102 via wireless access point 104.

Host device 106 may include a device for hosting a broadband card and anapplication that use the broadband card (e.g., a laptop, a personalcomputer, an electronic notepad, a gaming device, etc.). Host device 106may use the broadband card and the application to establish acommunication link between wireless access point 104 and host device106.

FIG. 2 is a block diagram of exemplary components of host device 106. Asshown, host device 106 may include processor 202, memory 204,input/output components 206, a network interface 208, and acommunication path 210. Depending on the implementation, host device 106may include additional, fewer, or different components than thoseillustrated in FIG. 2.

Processor 202 may include a microprocessor, an Application SpecificIntegrated Circuit (ASIC), a Field Programmable Gate Array (FPGA),and/or other processing logic capable of controlling host device 106.Memory 204 may include static memory, such as read only memory (ROM),and/or dynamic memory, such as random access memory (RAM), or onboardcache, for storing data and machine-readable instructions. Memory 204may also include computer-readable storage devices, such as a floppydisk, CD ROM, CD read/write (R/W) disc, and/or flash memory, as well asother types of storage devices configured to store computer-executableinstructions.

Input/output components 206 may include a display screen, a keyboard, amouse, a speaker, a microphone, a Digital Video Disk (DVD) writer, a DVDreader, Universal Serial Bus (USB), and/or other types of components forconverting physical events or phenomena to and/or from digital signalsthat pertain to host device 106.

Network interface 208 may include transceiver-like mechanism thatenables host device 106 to communicate with other devices and/orsystems. For example, network interface 208 may include mechanisms forcommunicating via a network, such as the Internet, a terrestrialwireless network (e.g., a WLAN), a satellite-based network, etc.Additionally or alternatively, network interface 208 may include amodem, an Ethernet interface to a LAN, and/or an interface/connectionfor connecting host device 106 to other devices (e.g., a Bluetoothinterface).

In one implementation, network interface 208 may include a broadbandcard plug-in assembly for establishing a wireless communication linkover which host device 106 may communicate with another device (e.g., aremote device). The broadband card plug-in assembly may include one ormore hardware ports and broadband cards that communicate with thehardware ports. Once associated with a hardware port, the broadbandcards may be managed and controlled via commands that are issued throughthe hardware ports.

Communication path 210 may provide an interface through which componentsof host device 106 can communicate with one another.

FIG. 3 is a block diagram of exemplary functional components of hostdevice 106. As shown, host device 106 may include supporting system 302and broadband card-related components 304. Depending on theimplementation, host device 106 may include additional, fewer, ordifferent components than those illustrated in FIG. 3. For example, hostdevice 106 may include additional applications, such as, a wordprocessing application, a multimedia application, etc.

Supporting system 302 may include a computer program (e.g., an operatingsystem, a Windows Management Instrumentation (WMI), etc.) for managinghardware and software resources of host device 106 and for performingvarious support functions for applications executing on host device 106.For example, supporting system 302 may provide a TCI/IP stack to supporta communication application. Supporting system 302 may also provideinterfaces between the applications and the components in FIG. 2 (e.g.,input/output components 206, network interface 208, etc.). Broadbandcard-related components 304 may include software components for managingand/or controlling different broadband card models (e.g., VerizonBroadband USB720 by Novatel Wireless, Sierra Compass 597USB Modem,Sierra Aircard 596, etc.) and/or different types of broadband cardsinstalled on host device 106 (e.g., Evolution Data Only/Evolution DataOptimized (EVDO) cards, Global System for Mobile Communications (GSM)cards, etc.).

FIG. 4 is a block diagram of exemplary functional components ofbroadband card-related components 304. As shown, broadband card-relatedcomponents 304 may include generic broadband card application 402 andplug-ins 404. Depending on the implementation, broadband card-relatedcomponents 304 may include additional, fewer, or different componentsthan those illustrated in FIG. 4.

Broadband application 402 may include a software component for testing abroadband card, configuring the broadband card, and establishing andusing a wireless communication link via the broadband card. Inestablishing and using the communication link, broadband application 402may use plug-ins 404. Plug-ins 404 (e.g., drivers) may include softwarecomponents for managing and controlling individual broadband cards orgroups of broadband cards. Typically, broadband card application 402 andplug-ins 404 may implement interfaces that allow broadband cardapplication 402 and plug-ins 404 to interact with one another.

As further shown in FIG. 4, broadband card application 402 may includebroadband card detector 406, and plug-ins 404 may include one or more ofmodel specific plug-in 408, vendor specific plug-in 410, vendor specificgeneric plug-in 412, and generic plug-in 414.

Broadband card detector 406 may include logic for locating/detecting abroadband card inserted into host device 106. In detecting the broadbandcard, broadband card detector 406 may attempt to dynamically load modelspecific plug-in 408, vendor specific plug-in 410, vendor specificplug-in 412, or generic plug-in 414 until the broadband card isdetected. For example, assume that a broadband card manufactured by NewEra Communication, Inc. is inserted into host device 106. If dynamicallyloading model specific plug-in 408 results in a detection of thebroadband card, no additional plug-in may be loaded. In oneimplementation, these plug-ins may be loaded sequentially. In otherimplementations, the plug-ins may be loaded in parallel.

Model specific plug-in 408 and vendor specific plug-in 410 may includesoftware components for managing and controlling, respectively, aspecific broadband card model and a set of broadband card models from aspecific vendor. Typically, model specific plug-in 408 and vendorspecific plug-in 410 may be provided by a specific vendor ormanufacturer, and can use vendor specific interfaces to manage/controlthe broadband card.

Vendor specific generic plug-in 412 may include software components forcontrolling/managing different types of broadband cards. Depending onthe implementation, vendor specific generic plug-in 412 can includecustom-developed software that uses vendor specific interfaces.Typically, vendor specific generic plug-in 412 may operate like genericplug-in 414 (see below) in managing/controlling the broadband card, butvia the vendor specific interfaces.

Generic plug-in 414 may include software components for managing andcontrolling different broadband cards for which model specific plug-in408, vendor specific plug-in 410, or vendor specific generic plug-in 412is not available or installed on host device 106.

As used herein, vendor specific generic plug-in 412 and/or genericplug-in 414 may be referred to as “generic plug-in.” In addition,depending on the context, description that applies to generic plug-in414 may also apply to vendor-specific generic plug-in 412.

FIG. 5 is a flow diagram of an exemplary process 500 for managing andcontrolling a broadband card. Process 500 may start when a host device106 receives a new broadband card (block 502). The new broadband cardmay be received by host device 106 when a user plugs in the card into ahardware port of host device 106 or otherwise establishes a connectionbetween the broadband card and the hardware port.

A non-generic plug-in may be loaded (block 504). As used herein, theterm “non-generic plug-in” may refer to model specific plug-in 408 orvendor specific plug-in 410. In one implementation, broadband carddetector 404 may load the non-generic plug-in to detect a new card. Theloaded non-generic plug-in may query supporting system 302 in hostdevice 106 (e.g., an operating system, Windows ManagementInstrumentation, etc.) to determine if the non-generic plug-in supportsthe broadband card. Alternatively, broadband card detector 406 may loadthe non-generic plug-in when supporting system 302 (FIG. 3) informsgeneric broadband card application 402 or broadband card detector 406that a new piece of hardware is attached to host device 106.

If the non-generic plug-in detects the broadband card (block 506—YES),generic broadband card application 402 and/or the non-generic plug-inmay use the broadband card (block 524). For example, if model specificplug-in 408 detects the broadband card, model-specific plug-in may 408use the broadband card to establish a wireless communication link towireless access point 104. In another example, if vendor specificgeneric plug-in 410 detects the broadband card, broadband cardapplication 402 may configure the broadband card based on parametersthat are input by the user (e.g., connect to a server based on a servername that is input by the user).

If the non-generic plug-in does not detect the broadband card (block506—NO), broadband card detector 406 may determine whether host device106 includes more non-generic plug-ins (block 508). If host device 106includes more non-generic plug-ins (block 508—YES), process 500 mayreturn to block 504 to load another non-generic plug-in.

In the above, blocks 504, 506, and 508 may form a loop in which each ofnon-generic plug-ins is dynamically loaded in sequence to detect thebroadband card. In one implementation, the loop may load the non-genericplug-ins in the following order: model specific plug-in 408 and vendorspecific plug-in 410. This process may continue for a number ofdifferent vendors/broadband card models.

If host device 106 does not include more non-generic plug-ins (block508—NO), broadband card detector 406 may dynamically load a genericplug-in (e.g., vendor specific generic plug-in 412 or generic plug-in414) (block 510).

At block 512, it may be determined if the broadband card is detected(block 512). If the generic plug-in does not detect the broadband card(block 512—NO), process 500 may proceed to block 514, to determine ifthere is another generic plug-in (block 514). Furthermore, if there isanother generic plug-in (block 514—YES), process 500 may return to 510,to load in the other generic plug-in. If host device 106 does notinclude another generic plug-in (block 514—NO), process 500 may proceedto block 516, where generic broadband card application 402 may handlethe failure to detect a broadband card (e.g., “no detectable card”failure). For example, generic broadband card application 402 mayindicate, via a graphical user interface, that generic broadband cardapplication 402 or the generic plug-in failed to detect a broadbandcard.

If the broadband card is detected (block 512—YES), it may be determinedwhether the broadband card is certified (block 518). A card that is“certified” may support a set of predetermined interfaces for managingand controlling the card. In one implementation, a generic plug-in maydetermine whether the broadband card is certified by looking up anidentifier (e.g., a model number) associated with the card in a databasethat stores certification records. The certification record from thelookup may indicate whether the broadband card has been certified duringthe card's previous use in host device 106.

If the broadband card is certified (block 518—YES), process 500 mayproceed to block 524, where generic broadband card application 402 orthe generic plug-in may use the broadband card. If the card is notalready certified (block 518—NO), generic broadband card application402/the generic plug-in may perform a certification test (block 520). Inperforming the certification test, broadband application 402/the genericplug-in may invoke each of a set of predetermined interfaces that areused to manage/control the broadband card and detect whether eachinvocation return an error value.

To start the certification test, generic broadband card application402/the generic plug-in may establish communication with the broadbandcard. This may entail making multiple calls to supporting system 302.For example, when the broadband card is connected to host device 106,the broadband card may present itself as a modem to supporting system302. Consequently, for generic broadband card application 402/thegeneric plug-in to interact with the broadband card, generic broadbandcard application 402/the generic plug-in may need to access thebroadband card's command port and data port. Because different broadbandcards may designate their command/data ports differently, genericbroadband card application 402/generic plug-in 414 may query supportingsystem 302 (e.g., an operating system, a Windows ManagementInstrumentation, etc.) to locate the command/data port of the broadbandcard. Furthermore, in certain instances, generic broadband cardapplication 402/the generic plug-in may query supporting system 302multiple times (e.g., twice) to determine whether the command port/dataport is a Universal Serial Bus (USB) port or a Personal Computer MemoryCard International Association (PCMCIA) port, etc.

In the above, in responding to the commands, different broadband cardsmay provide outputs in different formats. To correctly interpret theoutputs, generic broadband card application 402 may include a parserthat scans the outputs.

It may be determined whether performing the certification test certifiesthe card (block 522). The card may be deemed certified if no error valueis returned for invoking a subset of the interfaces that are necessaryfor using the broadband card. For example, if a card fails to respondcorrectly to a command that is not important for its use, the card maybe deemed certified. The failed command may be disabled from furtheruse.

When the card is deemed certified, a result of the certification testmay be stored in a database of certification records. If the samebroadband is card is pulled out and, at a later time, reconnected intohost device 106, generic broadband application 402 or a generic plug-inmay perform a lookup in the database based on an identifier associatedwith the broadband card.

If the card is certified (block 522—YES), process 500 may proceed toblock 524, to use the broadband card. If the card is not certified(block 522—NO), process 500 may proceed to block 526, where genericbroadband card application 402 or a generic plug-in may handle thefailure to certify the card. For example, the generic plug-in mayindicate, via a graphical user interface, that the broadband card failedthe certification test and that the generic plug-in is unable to use thecard for broadband communication.

In the above, as process 500 proceeds through various blocks in FIG. 5,generic broadband card application 402 may display a list of broadbandcards that are detected, a list of broadband cards that failed thecertification test, a list of commands that a certified card does notsupport, and/or other relevant information related to detection and/oruse of the broadband cards.

In the above, some blocks in FIG. 5 have been described as beingperformed by a generic plug-in (e.g., vendor specific generic plug-in412 or generic plug-in 414) or by generic broadband card application402. However, in a different implementation, those blocks may beperformed by a different component. For example, in the above example, ageneric plug-in is described as handling a failure to certify thebroadband card at block 526. In a different implementation, genericbroadband card application 402 may handle the failure to certify thecard.

FIGS. 6-9 illustrate a number of exemplary graphical user interfaces(GUIs) associated with broadband card application 402. FIG. 6illustrates an exemplary test window 602 of the GUI. As shown, window602 may include commands 604 and 606 and keys 608. Window 602 may pop upwhen application 402 is running in background or when the user startsapplication 402, to alert the user about a status of the broadband card.Depending on the implementation, window 602 may include additional,fewer, or different components than those illustrated in FIG. 6.

Commands 604 and 606 may include commands that generic broadband cardapplication 402 issues to the broadband card to certify the broadbandcard. For example, generic broadband card application 402 may issue GetManufacturer command 610 to the broadband card and wait for a validresponse. Other commands, such as Get Access Point Name (e.g., a name ofa network or a device to which the broadband card may connect), SetAccess Point Name, etc. may be issued similarly. Although FIG. 6 shows24 different commands, in a different implementation, commands 604 and606 may include additional, fewer, or different commands than the onesillustrated in FIG. 6.

Keys 608 explain the meaning of a symbol that is placed before eachcommand in commands 604 and 606. □, , and ◯ symbols may indicate,respectively, that a corresponding command has not yet been tested, thecorresponding command has been successfully completed for the broadbandcard, and the corresponding command has unsuccessfully completed. Forexample, the  symbol before Get Model command 612 may indicate thatapplication 402 is able to issue command 612 to the broadband card andobtain an identifier that is associated with the broadband card model.In another example, the ◯ symbol before Query Minimum Quality of Service(QoS) command 614 may indicate that application 402 is unable to obtaina valid response in to command 614. In yet another example, the □ symbolbefore Set Minimum QoS command 616 may indicate that application 402 hasnot yet tested command 616.

FIG. 7 illustrates an exemplary window 702 of the GUI for genericbroadband card application 402. As shown, network access window 702 mayinclude a network properties section 704 and a user credentials section706.

Network properties section 704 may include GUI components that describeproperties of a network to which the broadband card has or is toestablish communication. Although network properties section 704 isshown as including different components, only a Current Network textbox708 and a Network Type textbox 710 are described below for purposes ofsimplicity.

Current Network textbox 708 may include a GUI component (e.g., a textboxcomponent) in which the name of network to which the broadband card hasestablished communication is displayed. Generic broadband cardapplication 402 may establish the communication, either automatically orwhen the user directs application 402 to establish the communication,via a certified broadband card. Network Type textbox 710 may include aGUI component in which the type of network to which the broadband cardhas established a communication link is displayed. For example, NetworkType textbox 710 may designate that the network is a General PacketRadio Service (GPRS) network, Universal Mobile Telecommunications System(UMTS) network, High-Speed Downlink Packet Access (HSDPA) network, EVDOnetwork, etc.

User credentials section 706 may include GUI components that displayparameters that are association with authenticating the user to accessthe network, such as a user name, a user password, etc.

FIG. 8 illustrates another window 802 of the GUI for generic broadbandcard application 402. As shown, window 802 may include a Usageinformation section 804, a Subscriber Identity Module (SIM) card section806, and Card Properties section 808.

Usage information section 804 may display information that is related tocommunication sessions associated with the broadband card. For example,usage information section 804 may show the number of bytes that havebeen sent during the current communication session, the number of bytesthat have been received, etc. SIM card section 806 may show informationabout the status of the broadband card, such as whether the broadbandcard is ready for use, whether a personal identification number (PIN)needs to be input to use the card, etc. Card properties section 808 maydisplay properties that are associated with the broadband card, such asthe name of broadband card manufacturer, an identifier associated withthe broadband card model, etc.

Above, some of the components of window 802 may be associated withspecific commands that are shown as being tested in FIG. 6. For example,in Card Properties section 808, a model number and a name of thebroadband card manufacturer may be obtained by issuing Get Model command612 and Get Manufacturer command 610, respectively, to the broadbandcard.

FIG. 9 illustrates yet another exemplary window 902 of the GUI forgeneric broadband card application 402. As shown, window 902 may includea Subscriber Properties section 904, a Minimum QoS section 906, and aRequested QoS section 908.

Subscriber Properties section 904 may include information that pertainsto a service to which the user subscribes (e.g., a phone number, asubscriber identifier, etc.). Minimum QoS section 906 and Requested QoS908 may display information that is related to the minimum quality ofservice and a requested quality of service, such as the minimum networkdelay, an average reliability (e.g., an error rate), etc.

In the above, FIGS. 6-9 illustrate a number of exemplary windows of theGUI for generic broadband card application 402 as having certaincomponents and sections. In a different implementation, windows 602-902may include additional, fewer, or different components and/or sectionsthan those illustrated in FIGS. 6-9.

In the above, generic broadband card application 402 and associatedcomponents (e.g., broadband card detector 406, generic plug-in 414,etc.) may provide increased convenience to broadband card users, andsave application writer/distributors production/distribution costtypically associated with broadband card development and distribution.Because application 402 and the associated components can handledifferent broadband card models/types, the user may avoid installing avendor specific application or a plug-in to use a new broadband cardmodel/type. The application writer/distributor may avoid providing theupgraded application/plug-in to users who wish to use the new broadbandcard model/new type of broadband card. Because new broadband cardtypes/models are often released into the market, the increasedconvenience and cost savings can be significant factors inpurchasing/selling a particular application/plug-in for managing andcontrolling broadband cards.

Foregoing description of implementations provides an illustration, butis not intended to be exhaustive or to limit the implementations to theprecise form disclosed. Modifications and variations are possible inlight of the above teachings or may be acquired from practice of theteachings.

For example, while a series of blocks have been described with regard tothe process illustrated in FIG. 5, the order of the blocks may bemodified in other implementations. In addition, non-dependent blocks mayrepresent blocks that can be performed in parallel.

It will be apparent that aspects described herein may be implemented inmany different forms of software, firmware, and hardware in theimplementations illustrated in the figures. The actual software code orspecialized control hardware used to implement aspects does not limitthe invention. Thus, the operation and behavior of the aspects weredescribed without reference to the specific software code—it beingunderstood that software and control hardware can be designed toimplement the aspects based on the description herein.

Further, certain portions of the implementations have been described as“logic” that performs one or more functions. This logic may includehardware, such as a processor, an application specific integratedcircuit, or a field programmable gate array, software, or a combinationof hardware and software.

No element, block, or instruction used in the present application shouldbe construed as critical or essential to the implementations describedherein unless explicitly described as such. Also, as used herein, thearticle “a” is intended to include one or more items. Where only oneitem is intended, the term “one” or similar language is used. Further,the phrase “based on” is intended to mean “based, at least in part, on”unless explicitly stated otherwise.

1. A device comprising: a hardware port to connect to a broadband card;and a processor configured to: access or load a non-generic plug-in,provided in the device, to detect the broadband card; determine that thenon-generic plug-in fails to detect the broadband card; use a genericplug-in, provided in the device, when the non-generic plug-in fails todetect the broadband card; use the generic plug-in to apply acertification test, via a set of predetermined interfaces of the device,to the broadband card; use a plurality of particular commands to controlthe broadband card via the generic plug-in, upon successful completionof the certification test, for a particular subset of interfaces, of theset of predetermined interfaces, determined using the generic plug-in;and disable a plurality of other commands associated with another subsetof interfaces, of the set of predetermined interfaces, for which thecertification test is not successfully completed.
 2. The device of claim1, wherein the processor is further configured to: identify a commandport of the broadband card to receive the particular commands; andidentify a data port of the broadband card to receive data using thegeneric plug-in.
 3. The device of claim 1, wherein the hardware port isfurther configured to connect to at least one of: a Evolution DataOptimized (EVDO) card; or a Global System for Mobile Communications(GSM) card.
 4. The device of claim 1, wherein the non-generic plug-incomprises a plurality of vendor-specific plug-ins associated with aplurality of different vendors.
 5. A computer-readable storage deviceconfigured to store computer-executable instructions, thecomputer-executable instructions, comprising: instructions to access orload a model specific plug-in, provided in a device, in response to abroadband card being connected to the device; instructions to access orload a vendor specific plug-in, provided in the device, when the modelspecific plug-in fails to detect the broadband card; instructions toaccess or load a generic plug-in, provided in the device, when thevendor specific plug-in fails to detect the broadband card; instructionsto use the generic plug-in to detect the broadband card; instructions toperform, using the generic plug-in, testing of the broadband card withrespect to support for a plurality of commands; instructions todetermine, based on results the test, that the broadband card supportsparticular commands, of the plurality of commands, and does not supportother commands of the plurality of commands; instructions to certify,based on the particular commands, the broadband card for use with thegeneric plug-in; and instructions to use the broadband card to establisha broadband communication session after the broadband card is certified.6. The computer-readable storage device of claim 5, wherein theinstructions to perform testing comprise: instructions to issue, via aset of interfaces of the device, the plurality of commands to thebroadband card; and instructions to determine a subset of interfaces, ofthe set of interfaces, for which the broadband card returns a validresponse to each of the plurality of commands.
 7. The computer-readablestorage device of claim 5, wherein the plurality of commands include atleast one of: a command to request a model number associated with thebroadband card; a command to request a manufacturer name associated withthe broadband card; a command to obtain a firmware version associatedwith the broadband card; a command to obtain power status associatedwith the broadband card; a command to obtain a subscriber identifierassociated with the broadband card; a command to obtain an access portname (APN) associated with the broadband card; or a command to set anaccess port name (APN) associated with the broadband card.
 8. Thecomputer-readable storage device of claim 5, wherein the instructions touse the broadband card comprise: instructions to configure the broadbandcard by issuing a command to set parameters that are associated with thebroadband communication session, and instructions to obtain informationrelated to the broadband communication session.
 9. The computer-readablestorage device of claim 5, wherein the vendor specific plug-in comprisesa plurality of vendor-specific plug-ins associated with a plurality ofvendors.
 10. A network device comprising: one or more devices to select,upon receiving a broadband card at the network device, a firstvendor-specific plug-in provided in the network device, to detect thebroadband card; one or more devices to determine that the firstvendor-specific plug-in fails to detect the broadband card; and one ormore devices to select, when the first vendor-specific plug-in fails todetect the broadband card, a second vendor-specific plug-in provided inthe network device, to detect the broadband card, wherein the firstvendor-specific plug-in is associated with a first vendor, and thesecond vendor-specific plug-in is associated with a different, secondvendor.
 11. The network device of claim 10, further comprising: one ormore devices to determine that the second vendor-specific plug-in failsto detect the broadband card; one or more devices to determine that atleast one other vendor-specific plug-in is provided in the networkdevice; and one or more devices to select, when the secondvendor-specific plug-in fails to detect the broadband card, the at leastone other vendor-specific plug-in to detect the broadband card.
 12. Thenetwork device of claim 11, wherein the at least one othervendor-specific plug-in is associated with a third vendor that differsfrom the first and second vendors.
 13. The network device of claim 11,wherein the at least one other vendor-specific plug-in is associatedwith the first vendor.
 14. The network device of claim 10, furthercomprising: one or more devices to determine that the secondvendor-specific plug-in fails to detect the broadband card; one or moredevices to determine that no other vendor-specific plug-ins are providedin the network device; and one or more devices to select, when thesecond vendor-specific plug-in fails to detect the broadband card, atleast one of a vendor-specific generic plug-in or a generic plug-in,provided in the network device, to detect the broadband card.
 15. Thenetwork device of claim 10, further comprising: one or more devices todetermine that a plurality of vendor-specific plug-ins, including thefirst and second vendor-specific plug-ins, are provided in the networkdevice; and one or more devices to sequentially select each of theplurality of vendor-specific plug-ins until: the broadband card isdetected, or each of the plurality of vendor-specific plug-ins fails todetect the broadband card.
 16. The network device of claim 15, wherein,when each of the plurality of vendor-specific plug-ins fails to detectthe broadband card, the network device further comprises: one or moredevices to select at least one of a vendor-specific generic plug-in or ageneric plug-in, provided in the network device, to detect the broadbandcard.
 17. The network device of claim 10, further comprising: aplurality of non-generic plug-ins, including the first and secondvendor-specific plug-ins and a plurality of model-specific plug-ins; andone or more devices to sequentially select each of the plurality ofmodel-specific plug-ins to detect the broadband card before selectingthe first and second vendor-specific plug-ins to detect the broadbandcard.
 18. The network device of claim 10, further comprising: one ormore devices to determine that plurality of vendor-specific plug-ins,including the first and second plug-ins, are provided in the networkdevice, wherein the plurality of vendor-specific plug-ins are associatedwith a plurality of different vendors; and one or more devices tosequentially select each vendor-specific plug-in associated with therespective different vendors to detect the broadband card.
 19. Thenetwork device of claim 10, wherein the second vendor-specific plug-inis further configured to query a supporting system of the networkdevice, to determine if the second vendor-specific plug-in supports thebroadband card.
 20. The network device of claim 10, further comprising:a supporting system to notify a broadband card detector of the networkdevice, that a broadband card has been received at the network device.